home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / phagexsources.lha / source / KillSysAGA.s < prev    next >
Text File  |  1993-08-20  |  3KB  |  159 lines

  1. *****************************************************************************
  2. * Complete System Killer, A500-A4000 V1.3 / V3.0, ECS/AGA,  by Phagex '93   *
  3. *****************************************************************************
  4. * Killsys returns with:-                                                    *
  5. * d0 = Processor Type (d0 = x : 680x0 = 0 to 4),                            *
  6. * d1 = Bit #0 set if AGA, Bit #1 Set if V39 GFX lib available.              *
  7. * a0 = GFX Base (either V0 or V39)                                          *
  8. * a1 = Vector Base Register (68010++)                                       *
  9. *****************************************************************************
  10.  
  11.     Opt    c-
  12.     Section    "Full System Killer",Code_C
  13.     
  14. KillSys    Bsr    CheckSystem
  15.     Move.l    GFXBase(pc),a6
  16.     Lea    WBView(pc),a0
  17.     Move.l    34(a6),(a0)    
  18.     Sub.l    a1,a1
  19.     Jsr    -222(a6)    
  20.     Jsr    -270(a6)    
  21.     Jsr    -270(a6)    
  22.     Move.l    4.w,a6
  23.     Jsr    -132(a6)    
  24.     Lea    $Dff000,a6
  25.     Lea    SaveRegs(pc),a0
  26.     Move.w    2(a6),d0
  27.     Or    d0,(a0)+
  28.     Move.w    $1c(a6),d0    
  29.     Or    d0,(a0)+
  30.     Move.w    #$7fff,d0    
  31.     Moveq    #0,d1
  32.     Move.w    d0,$96(a6)    
  33.     Move.w    d0,$9a(a6)    
  34.     Move.w    d0,$9c(a6)    
  35.     Move.w    d1,$1fc(a6)    
  36.     Move.w    d1,$106(a6)    
  37.     Move.w    #%10001,$10c(a6)
  38.     Lea    ProcStats(pc),a6
  39.     Move.w    (a6)+,d0
  40.     Move.w    (a6)+,d1
  41.     Move.l    (a6)+,a0
  42.     Move.l    (a6)+,a1
  43.     Rts
  44.  
  45. ReturnSys    Lea    $Dff000,a6
  46.     Move.w    #$7fff,d0
  47.     Move.w    d0,$96(a6)
  48.     Move.w    d0,$9a(a6)
  49.     Move.w    d0,$9c(a6)
  50.     Lea    SaveRegs(pc),a0
  51.     Move.w    (a0)+,$96(a6)
  52.     Move.w    (a0)+,$9a(a6)
  53.     Move.l    4.w,a6
  54.     Jsr    -138(a6)
  55.     Move.l    GFXBase(pc),a6
  56.     Move.l    WBView(pc),a1
  57.     Jsr    -222(a6)
  58.     Move.l    38(a6),$dff080
  59.     Move.l    a6,a1
  60.     Move.l    4.w,a6
  61.     Jsr    -414(a6)
  62.     Moveq    #0,d0
  63.     Rts
  64.  
  65. CheckSystem    Move.l    $4.w,a6
  66.     Sub.l    a1,a1
  67.     Btst    #0,$129(a6)
  68.     Beq    GetVecBase
  69.     Lea    FetchVectorBase(pc),a5
  70.     Jsr    -$1e(a6)
  71.     Bra    GetVecBase
  72.     
  73. FetchVectorBase    Movec    vbr,a1
  74.      Rte
  75.  
  76. GetVecBase    Lea    VBRBase(pc),a0
  77.     Move.l    a1,(a0)
  78.     Lea    ProcStats(pc),a1
  79.     Move.l    #0,(a1)
  80.  
  81. cachetest    Move.l    $4.w,a6
  82.     Btst    #3,$129(a6)
  83.     Bne    Found040
  84.     Btst    #2,$129(a6)
  85.     Bne    Found030
  86.     Btst    #1,$129(a6)
  87.     Bne    Found020
  88.     Btst    #0,$129(a6)
  89.     Bne    Found010
  90.     Bra    CheckAGA
  91.  
  92. Found040    Move.w    #4,(a1)
  93.     Move.l    $4.w,a6
  94.     Lea    NoCaches040(pc),a5
  95.     Jsr    -$1e(a6)
  96.     Bra    CheckAGA
  97. Found030    Move.w    #3,(a1)
  98.     Bra    Found020_030
  99. Found020    Move.w    #2,(a1)
  100.     
  101. Found020_030    Move.l    $4.w,a6
  102.     Lea    NoCaches020_030(pc),a5
  103.     Jsr    -$1e(a6)
  104.     Bra    CheckAGA
  105. Found010    Move.w    #1,(a1)
  106.     Bra    CheckAGA
  107.     
  108. NoCaches040    Movec    cacr,d0
  109.     Bclr.l    #31,d0
  110.     Bclr.l    #15,d0
  111.     Movec    d0,cacr
  112.     Rte
  113. NoCaches020_030    Movec    cacr,d0
  114.     Bclr    #8,d0
  115.     Bclr    #0,d0
  116.     Movec    d0,cacr
  117.     Rte
  118.  
  119. CheckAGA    Move.w    $Dff07c,d0
  120.     Cmp.b    #$f8,d0
  121.     Bne    NotAGA
  122.     
  123.     Lea    VerStats(pc),a1
  124.     Move.w    #1,(a1)
  125.     
  126.     Moveq    #39,d0
  127.     Bsr    GetGFXLib
  128.     Tst.l    d0
  129.     Bne    GotV39Lib
  130.         
  131. NotAGA    Moveq    #0,d0
  132.     Bsr    GetGFXLib
  133.     Tst.l    d0
  134.     Bne    GotGFXBase
  135.     Rts
  136.     
  137. GotV39Lib    Lea    VerStats(pc),a1
  138.     Or.w    #2,(a1)
  139.  
  140. GotGFXBase    Lea    GFXbase(pc),a0
  141.     Move.l    d0,(a0)
  142.     Rts
  143.  
  144. GetGFXLib    Move.l    $4.w,a6
  145.     Lea    GFXName(pc),a1
  146.     Jsr    -$228(a6)
  147.     Rts
  148.     
  149. GFXName    Dc.b    'graphics.library',0
  150.     Even
  151.     
  152. ProcStats    Dc.w    0
  153. VerStats    Dc.w    0
  154. GFXBase    Dc.l    0
  155. VBRBase    Dc.l    0
  156. SaveRegs    Dc.l    $8000c000,0
  157. WBView    Dc.l    0
  158.  
  159.